package NotificationIRPSystem;


/**
 * Generated from IDL interface "NotificationIRP".
 *
 * @author JacORB IDL compiler V 2.3.0, 17-Feb-2007
 * @version generated at 2013-5-20 22:07:19
 */

public class _NotificationIRPStub
	extends org.omg.CORBA.portable.ObjectImpl
	implements NotificationIRPSystem.NotificationIRP
{
	private String[] ids = {"IDL:NotificationIRPSystem/NotificationIRP:1.0"};
	public String[] _ids()
	{
		return ids;
	}

	public final static java.lang.Class _opsClass = NotificationIRPSystem.NotificationIRPOperations.class;
	public java.lang.String attach_push(java.lang.String manager_reference, int time_tick, java.lang.String[] notification_categories, ManagedGenericIRPConstDefs.StringOpt filter) throws NotificationIRPSystem.AlreadySubscribed,ManagedGenericIRPSystem.InvalidParameter,NotificationIRPSystem.Attach,NotificationIRPSystem.AtLeastOneNotificationCategoryNotSupported,ManagedGenericIRPSystem.ParameterNotSupported
	{
		while(true)
		{
		if(! this._is_local())
		{
			org.omg.CORBA.portable.InputStream _is = null;
			try
			{
				org.omg.CORBA.portable.OutputStream _os = _request( "attach_push", true);
				_os.write_string(manager_reference);
				_os.write_ulong(time_tick);
				ManagedGenericIRPConstDefs.VersionNumberSetHelper.write(_os,notification_categories);
				ManagedGenericIRPConstDefs.StringOptHelper.write(_os,filter);
				_is = _invoke(_os);
				java.lang.String _result = _is.read_string();
				return _result;
			}
			catch( org.omg.CORBA.portable.RemarshalException _rx ){}
			catch( org.omg.CORBA.portable.ApplicationException _ax )
			{
				String _id = _ax.getId();
				if( _id.equals("IDL:NotificationIRPSystem/AlreadySubscribed:1.0"))
				{
					throw NotificationIRPSystem.AlreadySubscribedHelper.read(_ax.getInputStream());
				}
				else if( _id.equals("IDL:ManagedGenericIRPSystem/InvalidParameter:1.0"))
				{
					throw ManagedGenericIRPSystem.InvalidParameterHelper.read(_ax.getInputStream());
				}
				else if( _id.equals("IDL:NotificationIRPSystem/Attach:1.0"))
				{
					throw NotificationIRPSystem.AttachHelper.read(_ax.getInputStream());
				}
				else if( _id.equals("IDL:NotificationIRPSystem/AtLeastOneNotificationCategoryNotSupported:1.0"))
				{
					throw NotificationIRPSystem.AtLeastOneNotificationCategoryNotSupportedHelper.read(_ax.getInputStream());
				}
				else if( _id.equals("IDL:ManagedGenericIRPSystem/ParameterNotSupported:1.0"))
				{
					throw ManagedGenericIRPSystem.ParameterNotSupportedHelper.read(_ax.getInputStream());
				}
				throw new RuntimeException("Unexpected exception " + _id );
			}
			finally
			{
				this._releaseReply(_is);
			}
		}
		else
		{
			org.omg.CORBA.portable.ServantObject _so = _servant_preinvoke( "attach_push", _opsClass );
			if( _so == null )
				throw new org.omg.CORBA.UNKNOWN("local invocations not supported!");
			NotificationIRPOperations _localServant = (NotificationIRPOperations)_so.servant;
			java.lang.String _result;
			try
			{
				_result = _localServant.attach_push(manager_reference,time_tick,notification_categories,filter);
			}
			finally
			{
				_servant_postinvoke(_so);
			}
			return _result;
		}

		}

	}

	public ManagedGenericIRPConstDefs.Method[] get_notification_irp_operations_profile(java.lang.String notification_irp_version) throws ManagedGenericIRPSystem.InvalidParameter,ManagedGenericIRPSystem.OperationNotSupported,NotificationIRPSystem.GetNotificationIRPOperationsProfile
	{
		while(true)
		{
		if(! this._is_local())
		{
			org.omg.CORBA.portable.InputStream _is = null;
			try
			{
				org.omg.CORBA.portable.OutputStream _os = _request( "get_notification_irp_operations_profile", true);
				_os.write_string(notification_irp_version);
				_is = _invoke(_os);
				ManagedGenericIRPConstDefs.Method[] _result = ManagedGenericIRPConstDefs.MethodListHelper.read(_is);
				return _result;
			}
			catch( org.omg.CORBA.portable.RemarshalException _rx ){}
			catch( org.omg.CORBA.portable.ApplicationException _ax )
			{
				String _id = _ax.getId();
				if( _id.equals("IDL:ManagedGenericIRPSystem/InvalidParameter:1.0"))
				{
					throw ManagedGenericIRPSystem.InvalidParameterHelper.read(_ax.getInputStream());
				}
				else if( _id.equals("IDL:ManagedGenericIRPSystem/OperationNotSupported:1.0"))
				{
					throw ManagedGenericIRPSystem.OperationNotSupportedHelper.read(_ax.getInputStream());
				}
				else if( _id.equals("IDL:NotificationIRPSystem/GetNotificationIRPOperationsProfile:1.0"))
				{
					throw NotificationIRPSystem.GetNotificationIRPOperationsProfileHelper.read(_ax.getInputStream());
				}
				throw new RuntimeException("Unexpected exception " + _id );
			}
			finally
			{
				this._releaseReply(_is);
			}
		}
		else
		{
			org.omg.CORBA.portable.ServantObject _so = _servant_preinvoke( "get_notification_irp_operations_profile", _opsClass );
			if( _so == null )
				throw new org.omg.CORBA.UNKNOWN("local invocations not supported!");
			NotificationIRPOperations _localServant = (NotificationIRPOperations)_so.servant;
			ManagedGenericIRPConstDefs.Method[] _result;
			try
			{
				_result = _localServant.get_notification_irp_operations_profile(notification_irp_version);
			}
			finally
			{
				_servant_postinvoke(_so);
			}
			return _result;
		}

		}

	}

	public java.lang.String attach_pull(java.lang.String manager_reference, int time_tick, java.lang.String[] notification_categories, ManagedGenericIRPConstDefs.StringOpt filter, CosNotifyChannelAdmin.SequenceProxyPullSupplierHolder system_reference) throws NotificationIRPSystem.AlreadySubscribed,ManagedGenericIRPSystem.InvalidParameter,ManagedGenericIRPSystem.OperationNotSupported,NotificationIRPSystem.Attach,NotificationIRPSystem.AtLeastOneNotificationCategoryNotSupported,ManagedGenericIRPSystem.ParameterNotSupported
	{
		while(true)
		{
		if(! this._is_local())
		{
			org.omg.CORBA.portable.InputStream _is = null;
			try
			{
				org.omg.CORBA.portable.OutputStream _os = _request( "attach_pull", true);
				_os.write_string(manager_reference);
				_os.write_ulong(time_tick);
				ManagedGenericIRPConstDefs.VersionNumberSetHelper.write(_os,notification_categories);
				ManagedGenericIRPConstDefs.StringOptHelper.write(_os,filter);
				_is = _invoke(_os);
				java.lang.String _result = _is.read_string();
				system_reference.value = CosNotifyChannelAdmin.SequenceProxyPullSupplierHelper.read(_is);
				return _result;
			}
			catch( org.omg.CORBA.portable.RemarshalException _rx ){}
			catch( org.omg.CORBA.portable.ApplicationException _ax )
			{
				String _id = _ax.getId();
				if( _id.equals("IDL:NotificationIRPSystem/AlreadySubscribed:1.0"))
				{
					throw NotificationIRPSystem.AlreadySubscribedHelper.read(_ax.getInputStream());
				}
				else if( _id.equals("IDL:ManagedGenericIRPSystem/InvalidParameter:1.0"))
				{
					throw ManagedGenericIRPSystem.InvalidParameterHelper.read(_ax.getInputStream());
				}
				else if( _id.equals("IDL:ManagedGenericIRPSystem/OperationNotSupported:1.0"))
				{
					throw ManagedGenericIRPSystem.OperationNotSupportedHelper.read(_ax.getInputStream());
				}
				else if( _id.equals("IDL:NotificationIRPSystem/Attach:1.0"))
				{
					throw NotificationIRPSystem.AttachHelper.read(_ax.getInputStream());
				}
				else if( _id.equals("IDL:NotificationIRPSystem/AtLeastOneNotificationCategoryNotSupported:1.0"))
				{
					throw NotificationIRPSystem.AtLeastOneNotificationCategoryNotSupportedHelper.read(_ax.getInputStream());
				}
				else if( _id.equals("IDL:ManagedGenericIRPSystem/ParameterNotSupported:1.0"))
				{
					throw ManagedGenericIRPSystem.ParameterNotSupportedHelper.read(_ax.getInputStream());
				}
				throw new RuntimeException("Unexpected exception " + _id );
			}
			finally
			{
				this._releaseReply(_is);
			}
		}
		else
		{
			org.omg.CORBA.portable.ServantObject _so = _servant_preinvoke( "attach_pull", _opsClass );
			if( _so == null )
				throw new org.omg.CORBA.UNKNOWN("local invocations not supported!");
			NotificationIRPOperations _localServant = (NotificationIRPOperations)_so.servant;
			java.lang.String _result;
			try
			{
				_result = _localServant.attach_pull(manager_reference,time_tick,notification_categories,filter,system_reference);
			}
			finally
			{
				_servant_postinvoke(_so);
			}
			return _result;
		}

		}

	}

	public java.lang.String attach_push_b(java.lang.String manager_reference, int time_tick, java.lang.String[] notification_categories, ManagedGenericIRPConstDefs.StringOpt filter, CosNotifyChannelAdmin.SequenceProxyPushSupplierHolder system_reference) throws NotificationIRPSystem.AlreadySubscribed,ManagedGenericIRPSystem.InvalidParameter,ManagedGenericIRPSystem.OperationNotSupported,NotificationIRPSystem.Attach,NotificationIRPSystem.AtLeastOneNotificationCategoryNotSupported,ManagedGenericIRPSystem.ParameterNotSupported
	{
		while(true)
		{
		if(! this._is_local())
		{
			org.omg.CORBA.portable.InputStream _is = null;
			try
			{
				org.omg.CORBA.portable.OutputStream _os = _request( "attach_push_b", true);
				_os.write_string(manager_reference);
				_os.write_ulong(time_tick);
				ManagedGenericIRPConstDefs.VersionNumberSetHelper.write(_os,notification_categories);
				ManagedGenericIRPConstDefs.StringOptHelper.write(_os,filter);
				_is = _invoke(_os);
				java.lang.String _result = _is.read_string();
				system_reference.value = CosNotifyChannelAdmin.SequenceProxyPushSupplierHelper.read(_is);
				return _result;
			}
			catch( org.omg.CORBA.portable.RemarshalException _rx ){}
			catch( org.omg.CORBA.portable.ApplicationException _ax )
			{
				String _id = _ax.getId();
				if( _id.equals("IDL:NotificationIRPSystem/AlreadySubscribed:1.0"))
				{
					throw NotificationIRPSystem.AlreadySubscribedHelper.read(_ax.getInputStream());
				}
				else if( _id.equals("IDL:ManagedGenericIRPSystem/InvalidParameter:1.0"))
				{
					throw ManagedGenericIRPSystem.InvalidParameterHelper.read(_ax.getInputStream());
				}
				else if( _id.equals("IDL:ManagedGenericIRPSystem/OperationNotSupported:1.0"))
				{
					throw ManagedGenericIRPSystem.OperationNotSupportedHelper.read(_ax.getInputStream());
				}
				else if( _id.equals("IDL:NotificationIRPSystem/Attach:1.0"))
				{
					throw NotificationIRPSystem.AttachHelper.read(_ax.getInputStream());
				}
				else if( _id.equals("IDL:NotificationIRPSystem/AtLeastOneNotificationCategoryNotSupported:1.0"))
				{
					throw NotificationIRPSystem.AtLeastOneNotificationCategoryNotSupportedHelper.read(_ax.getInputStream());
				}
				else if( _id.equals("IDL:ManagedGenericIRPSystem/ParameterNotSupported:1.0"))
				{
					throw ManagedGenericIRPSystem.ParameterNotSupportedHelper.read(_ax.getInputStream());
				}
				throw new RuntimeException("Unexpected exception " + _id );
			}
			finally
			{
				this._releaseReply(_is);
			}
		}
		else
		{
			org.omg.CORBA.portable.ServantObject _so = _servant_preinvoke( "attach_push_b", _opsClass );
			if( _so == null )
				throw new org.omg.CORBA.UNKNOWN("local invocations not supported!");
			NotificationIRPOperations _localServant = (NotificationIRPOperations)_so.servant;
			java.lang.String _result;
			try
			{
				_result = _localServant.attach_push_b(manager_reference,time_tick,notification_categories,filter,system_reference);
			}
			finally
			{
				_servant_postinvoke(_so);
			}
			return _result;
		}

		}

	}

	public java.lang.String[] get_subscription_status(java.lang.String subscription_id, ManagedGenericIRPConstDefs.StringOptHolder filter_in_effect, NotificationIRPConstDefs.SubscriptionStateHolder subscription_state, org.omg.CORBA.IntHolder time_tick) throws ManagedGenericIRPSystem.InvalidParameter,ManagedGenericIRPSystem.OperationNotSupported,NotificationIRPSystem.GetSubscriptionStatus
	{
		while(true)
		{
		if(! this._is_local())
		{
			org.omg.CORBA.portable.InputStream _is = null;
			try
			{
				org.omg.CORBA.portable.OutputStream _os = _request( "get_subscription_status", true);
				_os.write_string(subscription_id);
				_is = _invoke(_os);
				java.lang.String[] _result = ManagedGenericIRPConstDefs.VersionNumberSetHelper.read(_is);
				filter_in_effect.value = ManagedGenericIRPConstDefs.StringOptHelper.read(_is);
				subscription_state.value = NotificationIRPConstDefs.SubscriptionStateHelper.read(_is);
				time_tick.value = _is.read_ulong();
				return _result;
			}
			catch( org.omg.CORBA.portable.RemarshalException _rx ){}
			catch( org.omg.CORBA.portable.ApplicationException _ax )
			{
				String _id = _ax.getId();
				if( _id.equals("IDL:ManagedGenericIRPSystem/InvalidParameter:1.0"))
				{
					throw ManagedGenericIRPSystem.InvalidParameterHelper.read(_ax.getInputStream());
				}
				else if( _id.equals("IDL:ManagedGenericIRPSystem/OperationNotSupported:1.0"))
				{
					throw ManagedGenericIRPSystem.OperationNotSupportedHelper.read(_ax.getInputStream());
				}
				else if( _id.equals("IDL:NotificationIRPSystem/GetSubscriptionStatus:1.0"))
				{
					throw NotificationIRPSystem.GetSubscriptionStatusHelper.read(_ax.getInputStream());
				}
				throw new RuntimeException("Unexpected exception " + _id );
			}
			finally
			{
				this._releaseReply(_is);
			}
		}
		else
		{
			org.omg.CORBA.portable.ServantObject _so = _servant_preinvoke( "get_subscription_status", _opsClass );
			if( _so == null )
				throw new org.omg.CORBA.UNKNOWN("local invocations not supported!");
			NotificationIRPOperations _localServant = (NotificationIRPOperations)_so.servant;
			java.lang.String[] _result;
			try
			{
				_result = _localServant.get_subscription_status(subscription_id,filter_in_effect,subscription_state,time_tick);
			}
			finally
			{
				_servant_postinvoke(_so);
			}
			return _result;
		}

		}

	}

	public void change_subscription_filter(java.lang.String subscription_id, java.lang.String filter) throws ManagedGenericIRPSystem.InvalidParameter,ManagedGenericIRPSystem.OperationNotSupported,NotificationIRPSystem.ChangeSubscriptionFilter
	{
		while(true)
		{
		if(! this._is_local())
		{
			org.omg.CORBA.portable.InputStream _is = null;
			try
			{
				org.omg.CORBA.portable.OutputStream _os = _request( "change_subscription_filter", true);
				_os.write_string(subscription_id);
				_os.write_string(filter);
				_is = _invoke(_os);
				return;
			}
			catch( org.omg.CORBA.portable.RemarshalException _rx ){}
			catch( org.omg.CORBA.portable.ApplicationException _ax )
			{
				String _id = _ax.getId();
				if( _id.equals("IDL:ManagedGenericIRPSystem/InvalidParameter:1.0"))
				{
					throw ManagedGenericIRPSystem.InvalidParameterHelper.read(_ax.getInputStream());
				}
				else if( _id.equals("IDL:ManagedGenericIRPSystem/OperationNotSupported:1.0"))
				{
					throw ManagedGenericIRPSystem.OperationNotSupportedHelper.read(_ax.getInputStream());
				}
				else if( _id.equals("IDL:NotificationIRPSystem/ChangeSubscriptionFilter:1.0"))
				{
					throw NotificationIRPSystem.ChangeSubscriptionFilterHelper.read(_ax.getInputStream());
				}
				throw new RuntimeException("Unexpected exception " + _id );
			}
			finally
			{
				this._releaseReply(_is);
			}
		}
		else
		{
			org.omg.CORBA.portable.ServantObject _so = _servant_preinvoke( "change_subscription_filter", _opsClass );
			if( _so == null )
				throw new org.omg.CORBA.UNKNOWN("local invocations not supported!");
			NotificationIRPOperations _localServant = (NotificationIRPOperations)_so.servant;
			try
			{
				_localServant.change_subscription_filter(subscription_id,filter);
			}
			finally
			{
				_servant_postinvoke(_so);
			}
			return;
		}

		}

	}

	public void detach(java.lang.String manager_reference, java.lang.String subscription_id) throws ManagedGenericIRPSystem.InvalidParameter,NotificationIRPSystem.DetachException,ManagedGenericIRPSystem.ParameterNotSupported
	{
		while(true)
		{
		if(! this._is_local())
		{
			org.omg.CORBA.portable.InputStream _is = null;
			try
			{
				org.omg.CORBA.portable.OutputStream _os = _request( "detach", true);
				_os.write_string(manager_reference);
				_os.write_string(subscription_id);
				_is = _invoke(_os);
				return;
			}
			catch( org.omg.CORBA.portable.RemarshalException _rx ){}
			catch( org.omg.CORBA.portable.ApplicationException _ax )
			{
				String _id = _ax.getId();
				if( _id.equals("IDL:ManagedGenericIRPSystem/InvalidParameter:1.0"))
				{
					throw ManagedGenericIRPSystem.InvalidParameterHelper.read(_ax.getInputStream());
				}
				else if( _id.equals("IDL:NotificationIRPSystem/DetachException:1.0"))
				{
					throw NotificationIRPSystem.DetachExceptionHelper.read(_ax.getInputStream());
				}
				else if( _id.equals("IDL:ManagedGenericIRPSystem/ParameterNotSupported:1.0"))
				{
					throw ManagedGenericIRPSystem.ParameterNotSupportedHelper.read(_ax.getInputStream());
				}
				throw new RuntimeException("Unexpected exception " + _id );
			}
			finally
			{
				this._releaseReply(_is);
			}
		}
		else
		{
			org.omg.CORBA.portable.ServantObject _so = _servant_preinvoke( "detach", _opsClass );
			if( _so == null )
				throw new org.omg.CORBA.UNKNOWN("local invocations not supported!");
			NotificationIRPOperations _localServant = (NotificationIRPOperations)_so.servant;
			try
			{
				_localServant.detach(manager_reference,subscription_id);
			}
			finally
			{
				_servant_postinvoke(_so);
			}
			return;
		}

		}

	}

	public ManagedGenericIRPConstDefs.Method[] get_notification_irp_notification_profile(java.lang.String notification_irp_version) throws NotificationIRPSystem.GetNotificationIRPNotificationProfile,ManagedGenericIRPSystem.InvalidParameter,ManagedGenericIRPSystem.OperationNotSupported
	{
		while(true)
		{
		if(! this._is_local())
		{
			org.omg.CORBA.portable.InputStream _is = null;
			try
			{
				org.omg.CORBA.portable.OutputStream _os = _request( "get_notification_irp_notification_profile", true);
				_os.write_string(notification_irp_version);
				_is = _invoke(_os);
				ManagedGenericIRPConstDefs.Method[] _result = ManagedGenericIRPConstDefs.MethodListHelper.read(_is);
				return _result;
			}
			catch( org.omg.CORBA.portable.RemarshalException _rx ){}
			catch( org.omg.CORBA.portable.ApplicationException _ax )
			{
				String _id = _ax.getId();
				if( _id.equals("IDL:NotificationIRPSystem/GetNotificationIRPNotificationProfile:1.0"))
				{
					throw NotificationIRPSystem.GetNotificationIRPNotificationProfileHelper.read(_ax.getInputStream());
				}
				else if( _id.equals("IDL:ManagedGenericIRPSystem/InvalidParameter:1.0"))
				{
					throw ManagedGenericIRPSystem.InvalidParameterHelper.read(_ax.getInputStream());
				}
				else if( _id.equals("IDL:ManagedGenericIRPSystem/OperationNotSupported:1.0"))
				{
					throw ManagedGenericIRPSystem.OperationNotSupportedHelper.read(_ax.getInputStream());
				}
				throw new RuntimeException("Unexpected exception " + _id );
			}
			finally
			{
				this._releaseReply(_is);
			}
		}
		else
		{
			org.omg.CORBA.portable.ServantObject _so = _servant_preinvoke( "get_notification_irp_notification_profile", _opsClass );
			if( _so == null )
				throw new org.omg.CORBA.UNKNOWN("local invocations not supported!");
			NotificationIRPOperations _localServant = (NotificationIRPOperations)_so.servant;
			ManagedGenericIRPConstDefs.Method[] _result;
			try
			{
				_result = _localServant.get_notification_irp_notification_profile(notification_irp_version);
			}
			finally
			{
				_servant_postinvoke(_so);
			}
			return _result;
		}

		}

	}

	public java.lang.String[] get_subscription_ids(java.lang.String manager_reference) throws ManagedGenericIRPSystem.InvalidParameter,ManagedGenericIRPSystem.OperationNotSupported,NotificationIRPSystem.GetSubscriptionIds
	{
		while(true)
		{
		if(! this._is_local())
		{
			org.omg.CORBA.portable.InputStream _is = null;
			try
			{
				org.omg.CORBA.portable.OutputStream _os = _request( "get_subscription_ids", true);
				_os.write_string(manager_reference);
				_is = _invoke(_os);
				java.lang.String[] _result = NotificationIRPConstDefs.SubscriptionIdSetHelper.read(_is);
				return _result;
			}
			catch( org.omg.CORBA.portable.RemarshalException _rx ){}
			catch( org.omg.CORBA.portable.ApplicationException _ax )
			{
				String _id = _ax.getId();
				if( _id.equals("IDL:ManagedGenericIRPSystem/InvalidParameter:1.0"))
				{
					throw ManagedGenericIRPSystem.InvalidParameterHelper.read(_ax.getInputStream());
				}
				else if( _id.equals("IDL:ManagedGenericIRPSystem/OperationNotSupported:1.0"))
				{
					throw ManagedGenericIRPSystem.OperationNotSupportedHelper.read(_ax.getInputStream());
				}
				else if( _id.equals("IDL:NotificationIRPSystem/GetSubscriptionIds:1.0"))
				{
					throw NotificationIRPSystem.GetSubscriptionIdsHelper.read(_ax.getInputStream());
				}
				throw new RuntimeException("Unexpected exception " + _id );
			}
			finally
			{
				this._releaseReply(_is);
			}
		}
		else
		{
			org.omg.CORBA.portable.ServantObject _so = _servant_preinvoke( "get_subscription_ids", _opsClass );
			if( _so == null )
				throw new org.omg.CORBA.UNKNOWN("local invocations not supported!");
			NotificationIRPOperations _localServant = (NotificationIRPOperations)_so.servant;
			java.lang.String[] _result;
			try
			{
				_result = _localServant.get_subscription_ids(manager_reference);
			}
			finally
			{
				_servant_postinvoke(_so);
			}
			return _result;
		}

		}

	}

	public java.lang.String[] get_notification_irp_versions() throws NotificationIRPSystem.GetNotificationIRPVersions
	{
		while(true)
		{
		if(! this._is_local())
		{
			org.omg.CORBA.portable.InputStream _is = null;
			try
			{
				org.omg.CORBA.portable.OutputStream _os = _request( "get_notification_irp_versions", true);
				_is = _invoke(_os);
				java.lang.String[] _result = ManagedGenericIRPConstDefs.VersionNumberSetHelper.read(_is);
				return _result;
			}
			catch( org.omg.CORBA.portable.RemarshalException _rx ){}
			catch( org.omg.CORBA.portable.ApplicationException _ax )
			{
				String _id = _ax.getId();
				if( _id.equals("IDL:NotificationIRPSystem/GetNotificationIRPVersions:1.0"))
				{
					throw NotificationIRPSystem.GetNotificationIRPVersionsHelper.read(_ax.getInputStream());
				}
				throw new RuntimeException("Unexpected exception " + _id );
			}
			finally
			{
				this._releaseReply(_is);
			}
		}
		else
		{
			org.omg.CORBA.portable.ServantObject _so = _servant_preinvoke( "get_notification_irp_versions", _opsClass );
			if( _so == null )
				throw new org.omg.CORBA.UNKNOWN("local invocations not supported!");
			NotificationIRPOperations _localServant = (NotificationIRPOperations)_so.servant;
			java.lang.String[] _result;
			try
			{
				_result = _localServant.get_notification_irp_versions();
			}
			finally
			{
				_servant_postinvoke(_so);
			}
			return _result;
		}

		}

	}

	public java.lang.String[] get_notification_categories(NotificationIRPConstDefs.NotificationTypesSetHolder notification_type_list) throws NotificationIRPSystem.GetNotificationCategories,ManagedGenericIRPSystem.OperationNotSupported
	{
		while(true)
		{
		if(! this._is_local())
		{
			org.omg.CORBA.portable.InputStream _is = null;
			try
			{
				org.omg.CORBA.portable.OutputStream _os = _request( "get_notification_categories", true);
				_is = _invoke(_os);
				java.lang.String[] _result = ManagedGenericIRPConstDefs.VersionNumberSetHelper.read(_is);
				notification_type_list.value = NotificationIRPConstDefs.NotificationTypesSetHelper.read(_is);
				return _result;
			}
			catch( org.omg.CORBA.portable.RemarshalException _rx ){}
			catch( org.omg.CORBA.portable.ApplicationException _ax )
			{
				String _id = _ax.getId();
				if( _id.equals("IDL:NotificationIRPSystem/GetNotificationCategories:1.0"))
				{
					throw NotificationIRPSystem.GetNotificationCategoriesHelper.read(_ax.getInputStream());
				}
				else if( _id.equals("IDL:ManagedGenericIRPSystem/OperationNotSupported:1.0"))
				{
					throw ManagedGenericIRPSystem.OperationNotSupportedHelper.read(_ax.getInputStream());
				}
				throw new RuntimeException("Unexpected exception " + _id );
			}
			finally
			{
				this._releaseReply(_is);
			}
		}
		else
		{
			org.omg.CORBA.portable.ServantObject _so = _servant_preinvoke( "get_notification_categories", _opsClass );
			if( _so == null )
				throw new org.omg.CORBA.UNKNOWN("local invocations not supported!");
			NotificationIRPOperations _localServant = (NotificationIRPOperations)_so.servant;
			java.lang.String[] _result;
			try
			{
				_result = _localServant.get_notification_categories(notification_type_list);
			}
			finally
			{
				_servant_postinvoke(_so);
			}
			return _result;
		}

		}

	}

}
